package pe.edu.upc.dew.cine.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.cine.model.Pelicula;

public class PeliculaDaoJdbc extends SimpleJdbcDaoSupport implements
		PeliculaDao {

	public Pelicula getPeliculaPorCodigo(int codigo) {
		return getSimpleJdbcTemplate()
				.queryForObject(
						"select codigo, nombre, cartelera, estreno from pelicula where codigo=?",
						new BeanPropertyRowMapper<Pelicula>(Pelicula.class),
						codigo);
	}

	public List<Pelicula> getPeliculas() {
		return getSimpleJdbcTemplate().query(
				"select codigo, nombre, cartelera, estreno from pelicula",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));
	}

	public List<Pelicula> getPeliculasEnCarteleraYEstreno() {
		return getSimpleJdbcTemplate()
				.query("select codigo, nombre, cartelera, estreno from pelicula where cartelera=true and estreno=true",
						new BeanPropertyRowMapper<Pelicula>(Pelicula.class));
	}

	public void insertar(Pelicula pelicula) {
		getSimpleJdbcTemplate()
				.update("insert into pelicula(codigo, nombre, cartelera, estreno) values(?,?,?,?)",
						pelicula.getCodigo(), pelicula.getNombre(),
						pelicula.isCartelera(), pelicula.isEstreno());
	}

	public void actualizar(Pelicula pelicula) {
		getSimpleJdbcTemplate().update(
				"update pelicula set nombre = ? where codigo=?",
				pelicula.getNombre(), pelicula.getCodigo());
	}

	public void eliminar(int codigo) {
		getSimpleJdbcTemplate().update("delete from pelicula where codigo=?",
				codigo);
	}
}